<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // let arr = [10, 20, 30, 40];

        // 数组求和
        // const result = arr.reduce((prev, item, index) => {
        //     // 第一轮循环 prev: 0
        //     // 从第二轮循环开始 prev：上一轮的返回值
        //     return prev + item;
        // }, 0);


        // 数组扁平化
        let arr = [1, 2, 3, [4, 5], 6, [1, 2, 3, 4], 8];
        const result = arr.reduce((prev, item) => {
            // prev: []
            // item: [1, 2, 3]
            // prev.concat(item)  --> [].concat([1, 2, 3]) --> [1, 2, 3]

            // prev: [1, 2, 3]
            // item: [4, 5]
            // prev.concat(item)  --> [1, 2, 3].concat([4, 5]) --> [1, 2, 3, 4, 5]
            return prev.concat(item)
        }, [])

        console.log(result);



        // // 一假必假
        // const result1 = arr.every((item, index) => {
        //     return item > 10;
        // })
        // // 一真必真
        // const result2 = arr.some((item, index) => {
        //     return item > 40;
        // })
        // console.log(result);


        // const newArr = arr.filter((item, index) => {
        //     // return item > 20;
        //     return index;
        // })

        // const newArr = arr.map((item, index) => {
        //     if (item > 20) {
        //         return item / 2;
        //     }
        //     return item;
        // })
        // console.log(newArr);



        // arr.forEach((item, index) => {
        //     console.log('item表示数据中的数据', item);
        //     console.log('index表示数据中的下标', index);
        // });

    </script>
</body>

</html>